#プロパティの値の型をプロパティ名のパターン毎に定義する方法
TypeScriptでオブジェクトのプロパティの値の型をプロパティ名のパターン毎に定義するには、下記のように、Template Literal Typesを使ってプロパティ名の型を定義します。そして、それをオブジェクトの型定義で使用します。
type NumberProperty = `number${string}`
type StringProperty = `string${string}`
interface Foo {
[bar: NumberProperty]: number,
[baz: StringProperty]: string,
}
const foo: Foo = {
numberA: 1,
stringA: 'a',
}