向空对象添加属性

das*_*man 1 typescript nativescript visual-studio-code

我有这个代码

var MY_OBJ = {};
MY_OBJ.test = function(){}
Run Code Online (Sandbox Code Playgroud)

我正在使用 Vscode,但未定义属性测试。我怎么让这只是一个警告。

小智 5

定义您的对象以具有test属性:

var MY_OBJ: {test?: Function} = {};

MY_OBJ.test = function() { };
Run Code Online (Sandbox Code Playgroud)

或者,以这种方式设置属性:

MY_OBJ['test'] = function() { };
Run Code Online (Sandbox Code Playgroud)

为了进一步的类型安全,定义MY_OBJ为一个对象:

var MY_OBJ: { [propName: string]: any } = {};
Run Code Online (Sandbox Code Playgroud)

这将防止诸如MY_OBJ = 14;.

如果您希望此对象始终具有函数值键,则

var MY_OBJ: { [propName: string]: Function } = {};
Run Code Online (Sandbox Code Playgroud)

将防止诸如MY_OBJ['test'] = 14;.

如果您打算any按照已接受的答案中提出的方式使用,那么首先使用 TypeScript 有什么意义?