这是JavaScript代码:
const obj = {
result: {},
add(key, value) {
this.result[key] = value;
}
};
obj.add('test', 1);
如何为obj写一个打字稿声明,以使vscode知道obj.result现在有一个名为“ test”的属性,其类型是数字?
答案 0 :(得分:1)
您可能不能(我不知道在v3.8中可以实现此目的的结构),运行时没有ts类型信息(如果您想根据add函数的调用确定结果属性的类型)。
您可以做的是创建obj的通用定义,该定义将value
参数类型与结果属性结构相关联。
type MyType<T> = {
result: Record<string, T>;
add: (key: string, value: T) => void;
}