简体   繁体   中英

A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type

I have following type definition

[Symbol(level)]?: string;

I have tried

importing level from winston and change the type to string|symbol but it doesn't resolve the problem.

It keep giving me following error "A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type."

any clue? any pointer is helpful

Your symbol level needs to be defined as a unique symbol , like so:

const level: unique symbol = Symbol();

Then modify your interface like this:

interface MyInterface {
    [level]?: string;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM