Scott Wlaschinに基づくexamples in F# Typescriptを使用して機能ドメインモデルを設計しようとしています。なぜこれはTypescriptとFlowで有効ですか?
しかし、オプションのパラメータでより厳密に定義された型を持たせるために、私は、typescriptが期待したプロパティを検証していないことに気付きました。このタイプのために例えば
、:
type ObjectOne = {
propertyOfOneMustBeNumber: number
}
type ObjectTwo = {
propertyOfTwoMustBeNumber: number
}
type Options = ObjectOne | ObjectTwo
私は次の使用例があります。
// valid
const test1: Options = {
propertyOfOneMustBeNumber: 1,
propertyOfTwoMustBeNumber: 2
}
// invalid:
// Object literal may only specify known properties,
// and 'unrecognized_property' does not exist in type 'Options'.
const test2: Options = {
propertyOfOneMustBeNumber: 1,
unrecognized_property: 'string'
}
// valid
const test3: Options = {
propertyOfOneMustBeNumber: 1,
propertyOfTwoMustBeNumber: 'string'
}
test2
変数のエラーが発生した理由を私は理解し、 けどなぜpropertyOfTwoMustBeNumber
がstrであっても、 の変数test3
のエラーはありません数字ではありませんか?
これはフロータイプシステムでも有効です。
重複:https://stackoverflow.com/questions/31816061/why-am-i-getting-an-error-object-literal-may-only-specify-known-properties? – Webbies
合計タイプが何であるか誤解しています。それはどちらか、あるいは両方ではありません。 'Option'(時には' Maybe 'と呼ばれることもある)は 'Just something'または' null'であり、両方ではありません。 –
「[オブジェクトリテラルは既知のプロパティのみを指定することができる」というエラーが表示されるのはなぜですか?](https://stackoverflow.com/questions/31816061/why-am-i-getting-an-error-object-literal -may-only-specified-known-properties) –