Информация об изменениях

Сообщение Re: TypeScript+Knockout - покритикуйте проект от 18.10.2018 12:08

Изменено 18.10.2018 12:22 Twirl

Re: TypeScript+Knockout - покритикуйте проект
Здравствуйте, LandWarrior, Вы писали:

LW>Вот, проба пера, так сказать. Что тут можно улучшить в части TypeScript и Knockout?


То что заметилось по быстрому:
1. Перейти на стандартную сборку через gulp/webpack/parcel
2. Использовать для веб зависимостей npm/yarn
3. Использовать современный яваскрипт (es2015+) с транспиляцией в es5 (или что там у вас необходимо поддерживать) (promise, await, import)
4. Не использовать module в TS, если сильно хочется то использовать для этого namespace
5. Не использовать /// <reference, вместе этого лучше использовать обычный импорт или включить этот .d.ts в tsconfig
6. Использовать везде интерфейсы в TS чаще всего не нужно, они нужны только если нету класса или несколько классов имеют общий конткракт
7. Не использовать замыкания для member functions. Это скорее вопрос вкуса, но для меня выглядит странно. Я бы использовал обычные функции.
Вместо
AddCustomer = (elem: CustomerIntrerfaces.ICustomer): void => {
            this.service.Insert(elem, (d) => {
                var tt = 0;
            });
            this.customers.push(elem);
        }


function addCustomer (elem: CustomerIntrerfaces.ICustomer): void {
            this.service.Insert(elem, (d) => {
                var tt = 0;
            });
            this.customers.push(elem);
        }
Re: TypeScript+Knockout - покритикуйте проект
Здравствуйте, LandWarrior, Вы писали:

LW>Вот, проба пера, так сказать. Что тут можно улучшить в части TypeScript и Knockout?


То что заметилось по быстрому:
1. Перейти на стандартную сборку через gulp/webpack/parcel
2. Использовать для веб зависимостей npm/yarn
3. Использовать современный яваскрипт (es2015+) с транспиляцией в es5 (или что там у вас необходимо поддерживать) (promise, await, import)
4. Не использовать module в TS, если сильно хочется то использовать для этого namespace
5. Не использовать /// <reference, вместе этого лучше использовать обычный импорт или включить этот .d.ts в tsconfig
6. Использовать везде интерфейсы в TS чаще всего не нужно, они нужны только если нету класса или несколько классов имеют общий конткракт
7. Не использовать замыкания для member functions. Это скорее вопрос вкуса, но для меня выглядит странно. Я бы использовал обычные функции.
Вместо
AddCustomer = (elem: CustomerIntrerfaces.ICustomer): void => {
            this.service.Insert(elem, (d) => {
                var tt = 0;
            });
            this.customers.push(elem);
        }


public addCustomer (elem: CustomerIntrerfaces.ICustomer): void {
            this.service.Insert(elem, (d) => {
                var tt = 0;
            });
            this.customers.push(elem);
        }