2017-07-08 16 views
1

私は活字体での作業の基本的なノックアウトモデルを取得しようとしているが、私は、私はWebPACKの通過transpilingてるときだと思う、それは「未使用」の変数最適化フィールドの透明化は離れていますか?

import * as ko from "knockout"; 

export class ViewModel { 
    public firstName: "James"; 
} 

ko.applyBindings(new ViewModel()); 

が、ビューモデルのコンパイル済みのバージョンを離れて最適化するということそう

<p data-bind="text: firstName"></p>

のようにバインドするときに私はエラーを取得しています

var ViewModel = (function() {\r\n function ViewModel() {\r\n }

です

Uncaught ReferenceError: Unable to process binding "text: function(){return firstName }" 
Message: firstName is not defined 

答えて

1
export class ViewModel { 
    public firstName: "James"; 
} 

コロンは型注釈を示し、あなたはfirstNameフィールドがタイプ"James"(文字列リテラルタイプ)を持っていることを言っています。 TypeScriptのすべての型と同様に、これはコンパイル時に消去されます。

私はあなたが何をしようとしていることfirstNameフィールドの初期値を設定されているので、あなたの代わりに=を使うべきだと思う:

export class ViewModel { 
    public firstName = "James"; 
} 

またはタイプで:

export class ViewModel { 
    public firstName : string = "James"; 
} 

両方期待される出力にコンパイルしてください:

var ViewModel = (function() { 
    function ViewModel() { 
     this.firstName = "James"; 
    } 
    return ViewModel; 
}()); 
+0

私は細かい瞬間がありました。ありがとうございました!できます! – Bluebaron

関連する問題