定义了类属性,但是报告“类型xxx上不存在该属性”

时间:2020-01-27 11:24:12

标签: typescript

我用TypeScript制作了一个类:

export class Vector3 {
    x: number;
    y: number;
    z: number;

    constructor(x, y, z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }
}

然后创建Vector3类的实例:

import { Vector3 } from './engine';
var myVector: Vector3 = new Vector3(1, 2, 3);

但是当我编译脚本时,它说:

TSError: ⨯ Unable to compile TypeScript:
src/engine.ts:5:14 - error TS2339: Property 'x' does not exist on type 'Vector3'.

5         this.x = x;
               ~
src/engine.ts:6:14 - error TS2339: Property 'y' does not exist on type 'Vector3'.

6         this.y = y;
               ~
src/engine.ts:7:14 - error TS2339: Property 'z' does not exist on type 'Vector3'.

7         this.z = z;
               ~

    at createTSError (/Users/rico345100/Desktop/development/test/node_modules/ts-node/src/index.ts:421:12)
    at reportTSError (/Users/rico345100/Desktop/development/test/node_modules/ts-node/src/index.ts:425:19)
    at getOutput (/Users/rico345100/Desktop/development/test/node_modules/ts-node/src/index.ts:530:36)
    at Object.compile (/Users/rico345100/Desktop/development/test/node_modules/ts-node/src/index.ts:735:32)
    at Module.m._compile (/Users/rico345100/Desktop/development/test/node_modules/ts-node/src/index.ts:814:43)
    at Module.m._compile (/Users/rico345100/Desktop/development/test/node_modules/ts-node/src/index.ts:814:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at require.extensions.<computed> (/Users/rico345100/Desktop/development/test/node_modules/ts-node/src/index.ts:817:12)
    at Object.require.extensions.<computed> [as .ts] (/Users/rico345100/Desktop/development/test/node_modules/ts-node/src/index.ts:817:12)
    at Module.load (internal/modules/cjs/loader.js:811:32)

我不知道为什么会这样。我可以清楚地看到Vector3类定义中存在x / y / z,但是为什么ts编译器会给出该错误?

1 个答案:

答案 0 :(得分:0)

只是猜测,但我认为您的导入语句import { Vector3 } from './engine';可能是错误的。类名Vector3很流行,您的IDE可能导入了错误的类实现。

相关问题