[[🗃️リテラル型(TypeScript)]]でメソッドの引数を決めたとき。
stringの'foo'を渡すだけだと、型エラーになってしまう。
```ts
function iTakeFoo(foo: 'foo') { }
const test = {
someProp: 'foo'
};
iTakeFoo(test.someProp);
// Error: Argument of type string is not assignable to parameter of type 'foo'
```
## 解決法
- `as`をつかって型を強制する
```ts
function iTakeFoo(foo: 'foo') { }
const test = {
someProp: 'foo' as 'foo'
};
iTakeFoo(test.someProp); // Okay!
```
- 変数の型宣言する
```ts
function iTakeFoo(foo: 'foo') { }
type Test = {
someProp: 'foo',
}
const test: Test = {
// Annotate - inferred someProp is always === 'foo'
someProp: 'foo'
};
iTakeFoo(test.someProp); // Okay!
```