您的代碼示例實(shí)際上存在類型錯誤: class Eng { private _name = new Name(time, course); // Cannot find name 'time'.(2304) // Cannot find name 'course'.(2304) private constructor(time: string, course: string) {} } 就typescript而言,time和course不在范圍之內(nèi)。若要使用構(gòu)造函數(shù)參數(shù),它們必須位于構(gòu)造函數(shù)主體中。 可能讓您困惑的是,在編譯時,代碼運(yùn)行良好。這是因為non-static類屬性被移動到構(gòu)造函數(shù)中,因為在普通JS中,它們需要在構(gòu)造函數(shù)中。 因此,編譯后的類如下所示: // jsclass Eng { constructor(time, course) { this._name = new Name(time, course); }} 這應(yīng)該不會有問題。 但Typescript有一個問題,它認(rèn)為構(gòu)造函數(shù)參數(shù)不在構(gòu)造函數(shù)之外的范圍內(nèi)。 如果不需要參數(shù): class Foo { constructor() {}}class UseFoo { private foo = new Foo() private constructor() {} } 那么你的方法就沒有什么問題了。 See Playgr