what is wrong with the javascript code?

function Update()
{
var clip : AudioClip;

 if(Input.GetMouseButtonDown(0))
 {
  // Plays the shoot animation - stops all other animations
  animation.Play("shoot", PlayMode.StopAll);
  audio.PlayOneShot("shotgun");

  }
}

Why does it tell me that

there is no apropriate bersion of “unityengine.audiosource.playoneshot”

You are passing a string as parameter. You should pass a clip.