93802


下記コードをtypescriptで書くにはどのようにすればよろしいでしょうか？

[code]

    export default class Auth extends Vue {
    public rules: { username: Array<string|boolean>, password: Array<string> } = {
    // 以下の配列内でアロー関数を書いた際の型定義の書き方が分かりません。
    // 現状だと型が宣言されてないとのことでエラーとなります
            username: [
                v => !!v || "ユーザー名は必須です",
                v => (v && v.length > 4) || "ユーザー名は5文字以上でなければなりません",
                v => /^[a-z0-9_]+$/.test(v) || "許可されていない文字が入力されています"
            ]
            password: [
                v => !!v || "パスワードは必須です",
                v => (v && v.length > 4) || "ユーザー名は5文字以上でなければなりません"
            ],
            }
    
    }
    
[/code]


CC BY-SA 4.0
2023-02-11T12:50:03.737
93799
2023-02-12T00:13:07.240
2023-02-11T13:16:04.213
47752
47752
question
typescript
typescriptで配列内にアロー関数を書きたい


配列内に関数オブジェクトを格納させたい、という意味なら、2行目は

[code]

    public rules: { username: Array<Function>, password: Array<Function> } = {
    
[/code]

または

[code]

    public rules: { username: Function[], password: Function[] } = {
    
[/code]

と書くことができます。

関数の引数と戻り型も厳密にしたいならば、

[code]

    public rules: { username: ((v:string)=>string|boolean)[], password: ((v:string)=>string|boolean)[] } = {
    
[/code]

のように書くこともできます。  
（引数をstring、戻り値をstring|booleanにしたい、ということで合ってますよね？例えば引数がstring|booleanだと`/^[a-z0-9_]+$/.test(v)`の部分で型エラーが起きてしまいます）


CC BY-SA 4.0
2023-02-12T00:13:07.240
93802
2023-02-12T00:13:07.240
52932
93799
answer