質問: 上記のように、 string を特殊化したような型を定義したいのですが、これは可能でしょうか?
回答: これが「できた」/「可能」と言えるか分かりませんが Playground で試すと, `let o: object = 'hello'` だとエラーになり, `let o: object = 'hello' as Object` で通ります。 このあたりの動作がよくわからないので, 適当な部分が含まれています ``` type json_string = string & { toObj: (s:json_string) => any } let o: object = 'hello' as Object let s: string = 'abc' let js: json_string = 'abc' as json_string // Type Assertionなしだとエラー s = js o = js js = s // エラー, Type Assertion付けると通る function fn(arg: string): string { return arg } // どちらも通る fn(s) fn(js) ```