TypeScript--noImplicitAny option, the Other

I did not know for a long time,
Any implicit error
It was a reference to the property that has not been defined

//Index Signature

var ok1:{
[index : string]:string;} = {};

var ok2:{
name :string;
age: string;
var ok2Same: {
name : string;
age: number;
var v1 = ok2Same["noExists"];
//Non-existent parameters become any implicit
//if you use --noImplicitAny option, this is error
var v2 = ok2Same["name"];
var v3 = ok2Same["age"];

//Constructor Signature

var Greeting:{
new(word:string): {hello():string;};
class GreetingImpl{
constructor(public word = "word"){}
return "Hello" + this.word;
Greeting = GreetingImpl;
var obj = new Greeting("word");
var str = obj.hello();


//if typeparameter same, independented function
function head(array: T[]):T {
return array[0];
function last(array:T[]):T{
return array[array.length-1];

var array = [1,2,3];