2016-05-27 9 views
0

かなり複雑な配列と異なる定数を返す関数を定義しようとしています。私の擬似コードは次のようになります:新しい複雑な変数型を宣言する方法

// file: matrix.d.ts (to accompany matrix.js) 
declare module 'matrix' { 

    // values restricted to ... 
    type MATRIX_VALUE = (null|-1|0|1); 
        ^ERROR: [ts] Type expected. 
    // OR: 
    type MATRIX_VALUE = Number?; 
          ^ERROR: [ts] ';' expected. 

    // array length restricted to 3 in 3, + specific values 
    type Matrix = Array<Array<MATRIX_VALUE>[3]>[3]; 
             ^ERROR: [ts] ']' expected. 
    // OR: 
    type Matrix = Array<Array<MATRIX_VALUE>(3)>(3); 
             ^ERROR: [ts] '>' expected. 

    export const A; 
    export const B; 

    export function testMatrix(mat: Matrix): A|B; 
             ^ERROR: [ts] can not find name 'A'. 

} 

私はかなり失われています。そこにはドキュメントがないようです。 アイデアたぶん私は間違った方法で完全に使用しています。私はこれを解決するためにどんな方向にも感謝しています。

活字体で

答えて

1

タイプMATRIX_VALUE =数

ヌルタイプをサポートしている最新:3の3に制限

type MATRIX_VALUE = number | null 

配列の長さ、

はタプルを使用しますタイプ

type MatrixRow = [number,number,number] 
type Matrix = [MatrixRow,MatrixRow,MatrixRow] 
+0

あなたはこれへの参照リンクがありますか?最新のVSCodeはそれを検証していません(どこでもVSCodeのどこにもTSCのバージョン番号が見つかりません) - 遊び場はありません – BananaAcid

+0

...あなたの解決策は-1,0,1に制限されません...あなたはそれを言及していないので、方法はありませんか? "str1"のような| "str2"? – BananaAcid

関連する問題