Можно ли разрешить строгую проверку типа для значения после использования утверждения типа?
Например, иногда мне нужно создать тип функции с атрибутами:
type FuncPlus = {
(): void;
anAttr: number;
anotherAttr: Array<number>;
};
const f = (() => { }) as FuncPlus;
f.anAttr = 1;
f.anotherAttr.length # will error because `anotherAttr` is `undefined`
Я хочу чистый способ построения, который все еще дает реальную безопасность типов.
Это самое близкое, что я нашел, но оно не очень "typcript-y":
const f: FuncPlus = Object.assign(
() => { },
{
anAttr: 1,
// without `anotherAttr` defined here,
// typescript will throw a compilation error, as desired
}
)
Кто-нибудь знает другой путь?