File: genericUnboundedTypeParamAssignability.ts

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (20 lines) | stat: -rw-r--r-- 451 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// @strict: true

function f1<T>(o: T) {
  o.toString(); // error
}

function f2<T extends {}>(o: T) {
  o.toString(); // no error
}

function f3<T extends Record<string, any>>(o: T) {
  o.toString(); // no error
}

function user<T>(t: T) {
  f1(t);
  f2(t); // error in strict, unbounded T doesn't satisfy the constraint
  f3(t); // error in strict, unbounded T doesn't satisfy the constraint
  t.toString();  // error, for the same reason as f1()
}