Sas*_*sha 52 typescript visual-studio-code
美好的一天.我是使用VSCode的Type Script的新手.
获得以下错误:
错误TS2322:类型'()=>字符串'不能分配给'string'类型.
错误TS2322:类型'()=>数字'不能分配给'number'类型.
代码:
DTO.ts
interface DTO {
getId(): number;
getValue(): string;
}
export = DTO;
Run Code Online (Sandbox Code Playgroud)
LinkedObject.ts
class LinkedObject {
public value: string = "Not Set";
public id: number = 0;
constructor(value?: string, id?: number) {
this.value = value;
this.id = id;
}
}
export = LinkedObject;
Run Code Online (Sandbox Code Playgroud)
我试图LinkedObject使用上面提到的接口方法实例化类:
TravelClientFormPopulator.ts
class TravelClientFormPopulator {
public populateComboBoxUsingDTOs(dataObjects: Array<DTO>, comboBoxID: string): void {
// Get the combo box
var selectElement = <HTMLSelectElement> document.getElementById(comboBoxID);
// Reset the options
selectElement.options.length = 0;
var linkedObjectsToAdd: LinkedObject[] = new Array<LinkedObject>();
var defaultLinkedObject: LinkedObject = new LinkedObject("Not Selected", 0);
linkedObjectsToAdd.push(defaultLinkedObject);
for (var i = 0; i < dataObjects.length; i++) {
var value: string = dataObjects[i].getValue; // Error here
var id: number = dataObjects[i].getId; // And here
var linkedObject: LinkedObject = new LinkedObject(value, id);
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将受到高度赞赏.
Mar*_*cka 41
你错过了括号:
var value: string = dataObjects[i].getValue();
var id: number = dataObjects[i].getId();
Run Code Online (Sandbox Code Playgroud)
还添加其他场景,您可能会看到这些错误
首先检查你的编译器版本,下载最新的 Typescript 编译器以支持 ES6 语法
即使输入错误,打字稿仍然会产生输出,这实际上并不会阻止开发,
当您看到这些错误在初始化或调用这些方法或变量时检查语法,
检查函数的参数是否为错误的数据类型,您将其初始化为“字符串”并分配“布尔值”或“数字”
例如
1.
private errors: string;
//somewhere in code you assign a boolean value to (string)'errors'
this.errors=true
or
this.error=5
Run Code Online (Sandbox Code Playgroud)
2.
private values: Array<number>;
this.values.push(value); //Argument of type 'X' is not assignable to parameter of type 'X'
Run Code Online (Sandbox Code Playgroud)
这里的错误消息是因为缺少数组初始化的方括号,即使没有它也可以工作,但是 VS Code 会出现红色警报。
private values: Array<number> = [];
this.values.push(value);
Run Code Online (Sandbox Code Playgroud)
注意:
请记住,Javascript 根据分配的值进行类型转换,因此 typescript 会通知他们,但即使在 VS Code 中突出显示这些错误,代码也会执行
前任:
var a=2;
typeof(a) // "number"
var a='Ignatius';
typeof(a) // "string"
Run Code Online (Sandbox Code Playgroud)
For what it worth, if anyone has this problem only in VSCode, just restart VSCode and it should fix it. Sometimes, Intellisense seems to mess up with imports or types.
与打字稿有关:'RegExpMatchArray'类型的参数不能分配给'string'类型的参数
| 归档时间: |
|
| 查看次数: |
165378 次 |
| 最近记录: |