Comment Comment by kevinb7 I believe that `strictFunctionTypes` only applies to callbacks. TypeScript is okay with the following code even with that option turned on: class Animal {} class Cat extends Animal { meow() {} } class Dog extends Animal { woof() {} } function foo(animals: Animal[]) { animals.push(new Dog) } const cats: Cat[] = [new Cat]; foo(cats); https://www.typescriptlang.org/play/#code/MYGwhgzhAECCB2BLAt... parent kevinb7 7 years ago