2014-07-13 01:04:16 +02:00
|
|
|
==== tests/cases/compiler/genericNewInterface.ts (2 errors) ====
|
|
|
|
function createInstance<T>(ctor: new (s: string) => T): T {
|
|
|
|
return new ctor(42); //should be an error
|
2014-07-25 02:00:03 +02:00
|
|
|
~~
|
2014-07-25 04:39:50 +02:00
|
|
|
!!! Argument of type 'number' is not assignable to parameter of type 'string'.
|
2014-07-13 01:04:16 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
interface INewable<T> {
|
|
|
|
new (param: string): T;
|
|
|
|
}
|
|
|
|
|
|
|
|
function createInstance2<T>(ctor: INewable<T>): T {
|
|
|
|
return new ctor(1024); //should be an error
|
2014-07-25 02:00:03 +02:00
|
|
|
~~~~
|
2014-07-25 04:39:50 +02:00
|
|
|
!!! Argument of type 'number' is not assignable to parameter of type 'string'.
|
2014-07-13 01:04:16 +02:00
|
|
|
}
|