Skip to content

New Object.values() type does not infer enums and results in unknown[]. #48

Open
@Andyuu

Description

@Andyuu

https://www.typescriptlang.org/play/?target=99&ts=5.5.4#code/JYOwLgpgTgZghgYwgAgPICMBWEFgMID2IAzmFAK64FTIDeAUMsgPQBUrjTryAShGOSglkcECKhQ4AT2QEYyAG5wANuQjFZ8sAAsUEEOQC20OOmUoADlAIXoYYOs0ixBLDjCdk3AAIW4kw1k0N1xkHTgwZAQiMDhQDR1La1soe0dRABNkYx0CDOIAOmQAFW1gDQRRZHQUKtdsUPDIqQJyKKgICIgs6mdkCAAPcvsQAHNkABECBCN9SIwGyIBZPIhlZAAKCdQlgEpZELACz1ZmTiVVdQAeYoA+DYIALmQAQQlpABlgAGsIG9vds9igBtAC6AG5OGwOEwvLx+IJhFV-JIZHJFCo1Bp0Yl+gZjJIzEkbHYHNj5HVDidkL5-HBAgRgoswtoIlEYnFhLirCTUmTnFkcto8oUSmUKlUan16u4WWyWm0EB0uj0aFVBsNQOMpjNjOAmbKVhk1pttnsDotjrDTudMdcANL9AaQED5ZAABWSdik9ogUgANMgAGr3TyyZ58aJQDJXe2BkP+ziAzakKBap0ut2OgD8weQz3xNRog0zGhzeee5BA3xABAA7iBdmDIUxodS+AIhBpke80fILlinLj9LNCeZkDyUmlydKqdaaX4AkEFrKmuzwJyEroJ16+elXdl+ML8kVSuUopLai5DnLmq12p1IKq+hrSOmdbN9SvQkaTVsdvsMq4FaXBnEwA7qA8zy0AAvsmVY1vWIDNvQULsO2CJdn0KLSE4vxSMwEEzsO+ImESO68tOTiUos1K0kujLfpEa7RBu8QssSU78pkh65CeYrnpUYhSjRq6sneirKk+shqmIr4jNq0yfvMN6-us-7mkBRwnGBeJkGS-xQa8vZfL8-zJsCqZaoGxSgihrbofOHaIt2Yg4X2yD4YRdrEduI4EqY46TqSjjoqJuB0Yu9LLjeLEcux3K7lRPFCiKp7ihewlXhaYnyveSqPt0MkvkMb5jJMSl6ipzJqaaAE5cBOmcHMaYOhm+hup6lE+n68ahrC4bwlGMZxsGtyJkwFlWWMgbTeMJYdWWyC5kG+bIIW0Dta6S0rWtCG1g2dkQmhMJcPCnZIm5vZ4X63mXL5eikWOnEhTO4UePO9HRYxsXieusQJduwV7q5gpHmlAkSlls7MmuCoPiqxXqqVCkVbqcwGj+qzqWagGHCBXi6S1ZJGbBU36TNyD7UhR2QidGEXa5DWRKxAMgOmKjrEhFFTjIxrEEqwAWGA1BvdetGfVFDKY8xf2s5uHE869Aq8ceopnlD1TZVpt7IPDBWI70yOauVH5VTLyC1RpeOWk1TCjPwqANl1vMTOogvC6LNxbW6sH9bCTwlBNyDJgwA3Au6yCgJ5frorZQJSLYGQu96bsC2mntQDcEegrcLbIDByAAGR0GGwIDM8KepD1UigpXSVSGnHsi1A+cwZCMGof5yAAKLFOokRh73Az0hY44ALzIAA5IMo-mFP9Cd-QrGkBi93IJPTEFERGx9wPuzL0Qq-E44m-4yfxC7-3pC7EAA

In the above playground, you can see that both Object.values() and Object.entries() both come up with values of unknown[]. This is really not ideal behaviour.

https://www.typescriptlang.org/play/?target=99&ts=5.5.4#code/JYOwLgpgTgZghgYwgAgPICMBWEFgMID2IAzmFAK64FTIDeAUMsgPQBUrjTryAShGOSglkcECKhQ4AT2QEYyAG5wANuQjFZ8sAAsUEEOQC20OOmUoADlAIXoYYOs0ixBLDjCdk3AAIW4kw1k0N1xkHTgwZAQiMDhQDR1La1soe0dRABNkYx0CDOIAOmQAFW1gDQRRZHQUKtdsUPDIqQJyKKgICIgs6mdkCAAPcvsQAHNkABECBCN9SIwGyIBZPIhlZAAKCdQlgEpZELACz1ZmTiVVdQAeYoA+DYIALmQAQQlpABlgAGsIG9vds9igBtAC6AG5OGwOEwvLx+IJhFV-JIZHJFCo1Bp0Yl+gZjJIzEkbHYHNj5HVDidkL5-HBAgRgoswtoIlEYnFhLirCTUmTnFkcto8oUSmUKlUan16u4WWyWm0EB0uj0aFVBsNQOMpjNjOAmbKVhk1pttnsDotjrDTudMdcANL9AaQED5ZAABWSdik9ogUgANMgAGr3J7w6JQDJXe2BkOA4NgyFMaHUvgCIQaZHvNHyC5Ypy4-SzQnmZA8lJpcnSqnWml+AJBBayprs8CchK6MtevnpV3ZfjC-JFUrlKKS2ouQ5y5qtdqdSCqvoa0haybTWb6puhI0mrY7fYy3BWrhnJh59QPZ60AC+8fIIG+IAIAHcQIn6FD2KmERm+ijpE4vxSMw55VoW+ImESXa8pWTiUos1K0g2jJbpELbRG28QssSFb8pk-a5EOYqjpUYhSvBzasjOirKgushqmIy4jNq656vMU47use7moeRwnKeeJkGS-yXq82ZfL8-zxsCpBQFqgbFKC77Jl+tZpoimZiP+ObIEBIF2mBnZFgSpiluWpKOOiFG4Ih9b0o2U7oRyWHct2sH4UKIrDuKY5kROFqUfKs5KvO3T0UuQwrmMa66nMBrbqsXFmgehzHl4AlzHJDpOi6bqejBPp+rGobPHwEZRjGwYAs8MlCWMsZKRCn4wlw8LpkiWnZoBfr6Zchl6BBJY4RZVbWR4tZIfZKGOVRraxC5nbmT2mmCgOXnERKfnVsyLYKnOKrheqkXMTFG7scynGmvuAVHvxnCZWSok3tJsnycg96Pi+ICNZCzXfu1mk3ZEGHzSAq4qOsX3QRWMjGsQSrABYYDUKNk4IRNdkMvFaGzSD7bYdDI0CgRg6iiOm3VP5vHTsge0hQdvRHZq0U6md2PIJd3EpZad1MKM-CoK++UwxM6gI0jKM3Dl+huje9yeLIQL+pw8YMLCyDAu6yCgLpfroopQJSLYGTC96ovw3JEtQDcmugrcSbINeyAAGR0ArwIDM8pupIVUigl7blSOb4vI1ADvXpC14fsZyAAKLFOokRq3HAz0hYpYALzIAA5IMafmNnytR-QGGkBifXIFnqEFKBGzx4nuwl0QZcPY4Vepa3xB1wnpC7EAA

The previous behaviour inferred them in what I believe is the correct way.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions