0

我正在.ts使用 TSlint (v3.15.1) 和更新版本的 typescript (2.0.3) 更新旧文件。我遇到了一些我想解决的错误。

该代码是对某些类属性的简单存在性测试:

export class myClass {
    private pUserName: string;
    private pUserPass: string;
    private pHost: string;
    private pPort: number;

constructor($host: string, $port: number) {
    this.pHost = $host;
    this.pPort = $port;
}   

public isReady(): boolean {
        return Boolean(this.pUserName && this.pUserPass && this.pJiraHost && this.pJiraPort);
}

我得到一个“[ts] 找不到名称布尔值”,或者一些“无法将字符串转换为布尔值”......

我对打字稿很陌生,你能帮我写这个的正确方法吗?

4

2 回答 2

0

我还发现不包括 es6 定义类型:

现在我的 tsconfig.json 看起来像:

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "ES6",
        "outDir": "out",
        "noLib": true,
        "sourceMap": true,
        "removeComments": true
    },
    "include" : [
        "node_modules/typescript/lib/lib.es6.d.ts",
        "node_modules/@types/node/index.d.ts",
        "node_modules/@types/q/index.d.ts",
        "node_modules/@types/mocha/index.d.ts",
        "node_modules/@types/moment/index.d.ts"
    ],
    "exclude": [
        "node_modules"
    ]
}
于 2016-10-05T11:46:48.843 回答
0

我找到了这个解决方法,它不报告任何错误。然而,这很冗长而且不是很优雅......有更好的主意吗?:)

public isReady(): boolean {
    for (const property in ['pUserName', 'pUserPass', 'pHost', 'pPort']) {
        if (typeof(property) !== 'string') {
            return false;
        }
    }
    return true;
}
于 2016-10-05T10:40:45.437 回答