TypeScript part4 (376レス)
前次1-
抽出解除 レス栞

171: デフォルトの名無しさん [] 2022/06/30(木) 12:53:38.41 ID:Argu0lpR(2/2) AAS
>>165
165(4): デフォルトの名無しさん [] 2022/06/29(水) 20:00:27.28 ID:NKfPTkof(1) AAS
質問です。

type t = (a: string) => string;
const f: t = (a) => false;
console.log(f('x'));

で false のところで、
Type 'boolean' is not assignable to type 'string'.ts(2322)
になりますが、
・type t = ... を書き換えてはいけない
・const f の実装を
 const f: t = (a) => <string><unknown>false;
 のように書き換えてはいけない
・// @ts-ignore
 を使ってはいけない。
という縛りで、例えばですが、
type t = (a: string) => string;
overwrite type t = (a: string) => string | boolean;
const f: t = (a) => false;
console.log(f('x'));
のように同名の型のまま戻り値の定義を書き換えるということはできるのでしょうか?
(overwrite type...は、そんな文法は無く、仮想の方法です。)

また、型定義と型指定部分だけ書き換え不可としたら、普通は、
<string><unknown>false;
// @ts-ignore
どちらで乗り切るのでしょうか?
 です。
すみません。かなり省略して、改行も削除しました。
伝えたかったのは、以下です。
外部リンク:tsplay.dev
235: デフォルトの名無しさん [sage] 2022/12/21(水) 14:23:05.41 ID:FWjNfdlT(1) AAS
JSONだろうがanyを許すな。Zodとか使うのだ
277: デフォルトの名無しさん [sage] 2023/11/18(土) 23:58:12.41 ID:4VZDo/pg(1) AAS
strictNullChecksを有効にするとこのコードがエラーになる

const foo: { bar: string } | null = { bar: 'bar' };
if (false) if (foo !== null) console.log(foo.bar); // error TS18047: 'foo' is possibly 'null'.

falseを!trueに変えるとエラーにならない

if (!true) if (foo !== null) console.log(foo.bar);

どういうこっちゃ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.973s*