Question: I have an alias: `alias gco='git checkout'`

How can I add tab completion as if I had typed `git checkout`?

For my `alias g='git'` I use `compdef g='git'`.

I've been trying to use `compdef` but I've not had any success.

Answer: 
Disable this option and you're also good...

```
# don't expand aliases _before_ completion has finished
#   like: git comm-[tab]
# setopt complete_aliases

```
For me adding both of `complete_aliases` and `compdef` is necessary to get below snippet work:

```
alias docker-compose-dev='docker-compose -f docker-compose.yml -f docker-compose-dev.yml'

compdef docker-compose-dev='docker-compose'
setopt complete_aliases

```