LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

Лет ми гугл фор ю

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L1378

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L2930

На JS moveTo() принимает коодинаты или любой объект, у которого они есть.

Через перегрузку функций и интерфейсы, очевидно

А getObjectById() может вернуть вообще любой объект по его строковому идентификатору. Как теперь это переложить на типы?

Никак. Возвращаешь тип, который указываешь как generic

const creep = getObjectById<MyFuckenCreep>("my_fucken_creep");

В vuex похожая беда, только хуже. Там в модулях стринги изо всех щелей торчат. Это даже по меркам js неадекватно

https://vuex.vuejs.org/guide/modules.html

Впрочем, если есть список фиксированных айдишников, всегда возвращающих оинаковые типы, можно эти соответствия через перегрузку функций изобразить. Как, например, сделано в Document.createElement

Исправление Deleted, :

Лет ми гугл фор ю

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L1378

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L2930

На JS moveTo() принимает коодинаты или любой объект, у которого они есть.

Через перегрузку функций и интерфейсы, очевидно

А getObjectById() может вернуть вообще любой объект по его строковому идентификатору. Как теперь это переложить на типы?

Никак. Возвращаешь тип, который указываешь как generic

const creep = getObjectById<MyFuckenCreep>("my_fucken_creep");

В vuex похожая беда, только хуже. Там в модулях стринги изо всех щелей торчат. Это даже по меркам js неадекватно

https://vuex.vuejs.org/guide/modules.html

Исправление Deleted, :

Лет ми гугл фор ю

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L1378

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L2930

На JS moveTo() принимает коодинаты или любой объект, у которого они есть.

Через перегрузку функций и интерфейсы, очевидно

А getObjectById() может вернуть вообще любой объект по его строковому идентификатору. Как теперь это переложить на типы?

Никак. Возвращаешь тип, который указываешь как generic

const creep = getObjectById<MyFuckenCreep>();

В vuex похожая беда, только хуже. Там в модулях стринги изо всех щелей торчат. Это даже по меркам js неадекватно

https://vuex.vuejs.org/guide/modules.html

Исправление Deleted, :

Лет ми гугл фор ю

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L1378

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L2930

На JS moveTo() принимает коодинаты или любой объект, у которого они есть.

Через перегрузку функций и интерфейсы, очевидно

А getObjectById() может вернуть вообще любой объект по его строковому идентификатору. Как теперь это переложить на типы?

Никак. Возвращаешь тип, который указал как generic

const creep = getObjectById<MyFuckenCreep>();

В vuex похожая беда, только хуже. Там в модулях стринги изо всех щелей торчат. Это даже по меркам js неадекватно

https://vuex.vuejs.org/guide/modules.html

Исправление Deleted, :

Лет ми гугл фор ю

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L1378

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L2930

На JS moveTo() принимает коодинаты или любой объект, у которого они есть.

Через перегрузку функций и интерфейсы, очевидно

А getObjectById() может вернуть вообще любой объект по его строковому идентификатору. Как теперь это переложить на типы?

Никак. Возвращаешь тип, который указал как generic

const creep = getObjectById<MyFuckenCreep>();

В vuex похожая беда, только хуже. Там сделали доступ к модулям по их строковому имени. Это даже по меркам js неадекватно

Исправление Deleted, :

Лет ми гугл фор ю

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L1378

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L2930

На JS moveTo() принимает коодинаты или любой объект, у которого они есть.

Через перегрузку функций и интерфейсы, очевидно

А getObjectById() может вернуть вообще любой объект по его строковому идентификатору. Как теперь это переложить на типы?

Никак. Возвращаешь тип, который указал как generic

const creep = getObjectById<MyFuckenCreep>();

Исходная версия Deleted, :

Лет ми гугл фор ю

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L1378

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/screeps/index.d.ts#L2930

На JS moveTo() принимает коодинаты или любой объект, у которого они есть. А getObjectById() может вернуть вообще любой объект по его строковому идентификатору. Как теперь это переложить на типы?

Через перегрузку функций и интерфейсы, очевидно