В идеале вы должны создать этот объект как литерал одного объекта. Таким образом, значение действительно имеет указанный тип с самого начала (вам нужно назначить только обязательные свойства):
let node:ITreeNode = {
values: [],
key: "A"
}
Playground Link
Если это невозможно, вы можете инициализировать объект с пустым объектом и использовать утверждение типа, но значение не будет согласовываться с типом, поэтому вы должны убедиться, что процесс инициализации устанавливает все необходимые свойства:
let node:ITreeNode = { } as ITreeNode
node.key = "A"
Playground Link