Vim9Script Types Help

I’m trying to add types to a language list in my vimrc file, the variable looks like this:

var languages = {
  'c': ['c', 'h'],
  'shell': ['sh'],
  'python': ['py'],
  'json': ['json'],
  'typescript': ['tsx', 'jsx', 'js', 'ts'],
}

I’ve tried adding types like this:

var languages: dict<string, list<string>> {...}

Which should work I think but I’m getting this error:

E488: Trailing characters: , list<string>> = {

I can’t figure out which characters are trailing and AI has no idea either.

Solution

I was being a moron and defining a type for the key in the dictionary which makes no sense because the key name would always be a string so therefore only the value type is required:

var languages: dict<list<string>> {...}
  • @knF
    link
    29 months ago

    Could it be because you didn’t close the >> after dict<<string ?

    • macOP
      link
      fedilink
      29 months ago

      No it’s dry l definitely fixed, I managed to get some help elsewhere, the solution was the fact that I’m seeing the your got the dictionary’s key, which makes no sense because it would always be a string.

  • zeet
    link
    19 months ago

    Shouldn’t the last character be a } rather than a ]?

    • macOP
      link
      fedilink
      19 months ago

      This is a typo in the post, I’m the actual code it’s closed correctly.