// new function a(arg: unknown): asserts arg is string; // my impl function b(arg: T): T extends string ? void : never; declare let v: string | number; a(v); let x: string = v;